# -*- coding: utf-8 -*-
"""
Created on Wed Aug 23 20:19:33 2023

@author: skunk69
"""

import json

chinese_name = u'Beck-Rafaelsen躁狂量表'
english_name = 'Beck-Rafaelsen Mania Scale'
abbreviation = 'BRMS'
category = u'精神病学临床量表'

outline = u"""贝克-拉范森躁狂量表（Bech-Rafaelsen Mania Rating Scale，BRMS）由Bech和Rafaelsen于1978年编制，用于躁郁症的躁狂性或情感性精神病的躁狂状态成人患者的心理测量。本量表经国内量表协作组（崔庶等人）于1985试用并在国内推广。"""

instruction = u"""BRMS主要评定测查之前的一周内的情况，每个项目采用0~4分的5级评分法：（0）无该项症状或与患者正常时的水平相仿，（1）症状轻微，（2）中度，（3）较重，（4）严重。"""

with open('BRMS.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

lines_items = [l.strip() for l in lines[0:14]]
lines_items_definition = []
lines_rating_standard = [l.strip() for l in lines[14::]]

items = {}
for num,line in enumerate(lines_items):
    key,value = line.split('.',maxsplit=1)
    items[key] = value

items_definition = {}
rating_standard = {}
for num,line in enumerate(lines_rating_standard[::6]):
    item = {}
    key,value = line.split('.',maxsplit=1)
    item[key] = value.strip()
    rate = {}
    lines_rate = lines_rating_standard[num*6+1:(num+1)*6]
    for k,v in enumerate(lines_rate):
        rate[k] = v.strip()
    rating_standard[key] = [item,rate]

reverse_items = []
scales = []
scales_items = []
factors = []
factors_scales = []
rating = [u'无',u'轻微',u'中度',u'较重',u'严重']
score_rules = list(range(5))

contents = {
    'instruction':instruction,
    'items':items,
    'items_definition':items_definition,
    'rating_standard':rating_standard,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《Beck-Rafaelsen躁狂量表》为一个他评量表。评定注意事项如下：
评定员须由经过量表训练的精神科医师担任。
此心理测评量表评定一般采用会谈与观察相结合的方式。由评定员进行临床精神检查后，综合家属或病房工作人员提供的资料进行评定。
一次评定约需20分钟左右。
评定的时间范围一般规定为最近一周，若再次评定则为间隔期的长短，一般为2-6周。"""

reliability = u"""国内量表协作组统计13个协作单位的评定员评定一致性，r＝0.97～0.99，提示信度甚佳。"""
validity = u"""BRMS的总分和躁狂状态临床判断的大体评定量表GAS之间，也呈现良好相关，r＝0.92，效度良好。且发现BRMS确实能反映治疗前后的躁狂病情变化。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""主要统计指标为总分。得分范围0~44分（工作条目两次测定计算平均分，总分暂不计入最后两个条目得分）。一般0～5分为无明显躁狂症状，6～10分为有肯定躁狂症状，22分以上为严重躁狂症状。
总分反映疾病严重性，总分越高，病情越重，治病前后总分值的变化反映疗效的好坏，差值越大疗效越好。"""

applications = u"""该量表有明确的评定标准，项目数量适中，便于掌握，有良好的信度和效度，能较好地反映治疗前后的变化，是评定躁狂状态的较好量表。适合于临床常规应用。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)